home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
Z-Misc Series
/
(k)zj.d64
/
txt.names
< prev
next >
Wrap
Text File
|
2007-03-01
|
3KB
|
144 lines
╚╔─┼ ┴╬─ ╥┼╓┼┴╠ ╬┴═┼╙
BY ─ICK ╦LINGENS
─UTCH ├╧═┴╠ ╒SERS ╟ROUP
├╧═┴╠ WAS DEVELOPED FOR EDUCATIONAL
PURPOSES IN THE FIRST PLACE: TEACHING
PROGRAMMING, INTRODUCTION TO
STRUCTURED PROBLEM SOLVING. ╚OWEVER,
EVEN WITH ├╧═┴╠ THE FIRST LESSON IN
PROGRAMMING MUST BE AS SIMPLE AS
POSSIBLE. ╔ THINK THAT IS WHY ┬ORGE
├HRISTENSEN, FOUNDER OF ├╧═┴╠,
DEVELOPED SUCH A PROGRAMMING
ENVIRONMENT AS CAN BE FOUND IN HIS
PROGRAM ╥OD THE ╥OADMAN.
╘HE STUDENTS PROGRAMMING ENVIRONMENT
IS CREATED IN ├╧═┴╠: IT IS ╥OD'S
UNIVERSE AS ╠EN CALLED IT IN ├╧═┴╠
╘╧─┴┘ #9. ╧NLY A FEW COMMANDS ARE
AVAILABLE
MOVE
RT
LT
PUTBEEP
PICKBEEP
BUT THE STUDENT CAN DO A LOT, EVEN
CREATE HIS OWN COMPLEX COMMANDS TO
GIVE TO ╥OD.
├REATING SUCH COMMANDS, ╔ PREFER THE
WORD PROCESS IN THIS CASE IN STEAD OF
PROCEDURE, IS A VERY INSTRUCTIVE WAY
TO INTRODUCE STRUCTURED PROGRAMMING.
╧F COURSE THE PROGRAMMING ENVIRONMENT
HAS BEEN HIDDEN FOR THE STUDENT. ╚E
DOES NOT HAVE TO KNOW HOW THE PROGRAM
ITSELF WORKS, ONLY HOW HIS OWN
PROCESSES.
╠EN POINTED OUT THAT THE
╨╥╧├.╙╚╧╫╬┴═┼╙ IS VERY HELPFULL TO
╥┼╓┼┴╠ THE PROGRAM STRUCTURE, BUT HOW
ABOUT THE STUDENT? ├AN HE LIST THE
NAMES OF HIS OWN PROCESSES?
╒NFORTUNATELY NOT. ╘HAT IS WHY ╔
ADDED A ╨╥╧├.╬┴═┼╙ TO THE PROGRAM
THAT LISTS ONLY THE PROCEDURE HEADERS
CREATED BY THE STUDENT.
╘HE PROCEDURE IS
╨╥╧├ NAMES ├╠╧╙┼─
START:=$0800 // OF ├╧═┴╠ PROGRAM
╥┼╨┼┴╘
HILIN#:=╨┼┼╦(START)
LOLIN#:=╨┼┼╦(START+1)
LINNO:=HILIN#*256+LOLIN#
LENGTH#:=╨┼┼╦(START+2)
TOKEN#:=╨┼┼╦(START+3)
├┴╙┼ TOKEN# ╧╞
╫╚┼╬ 112
// FOUND PROCEDURE
LOOFF#:=╨┼┼╦(START+4)
HIOFF#:=╨┼┼╦(START+5)
NAMOFF:=HIOFF#*256+LOOFF#
FN$:=NAME$(NAMOFF)
╔╞ LINNO>10000 ╘╚┼╬
// LINE IS NOT HIDDEN, SO
╨╥╔╬╘ " ╨╥╧├ ",FN$
┼╬─╔╞
╫╚┼╬ 227,228,229
// FOUND FUNCTION
LOOFF#:=╨┼┼╦(START+4)
HIOFF#:=╨┼┼╦(START+5)
NAMOFF:=HIOFF#*256+LOOFF#
FN$:=NAME$(NAMOFF)
╔╞ LINNO>10000 ╘╚┼╬
// LINE IS NOT HIDDEN, SO
╨╥╔╬╘ " ╞╒╬├ ",FN$,
// FOLLOWED BY TYPE CHARACTER
├┴╙┼ TOKEN# ╧╞
╫╚┼╬ 227 // REAL FUNC
╨╥╔╬╘ ""
╫╚┼╬ 228 // INTEGER FUNC
╨╥╔╬╘ "#"
╫╚┼╬ 2 // STRING FUNC
╨╥╔╬╘ "$"
┼╬─├┴╙┼
┼╬─╔╞
╧╘╚┼╥╫╔╙┼
// FOUND SOMETHING ELSE
┼╬─├┴╙┼
// NEXT ITEM IN NAME TABLE
START:+LENGTH#
╒╬╘╔╠ LENGTH#=0 END OF TABLE
╞╒╬├ NAME$(AD) ├╠╧╙┼─
// AD IS OFFSET IN NAME TABLE
NAMTAB:=$18 //PNTR NAME TABLE
LONAM#:=╨┼┼╦(NAMTAB)
HINAM#:=╨┼┼╦(NAMTAB+1)
NAMSTART:=HINAM#*256+LONAM#+AD
NAMLEN#:=╨┼┼╦(NAMSTART)-4
N$:=""
╞╧╥ T#:=1 ╘╧ NAMLEN# ─╧
N$:+├╚╥$(╨┼┼╦(NAMSTART+T#+3))
┼╬─╞╧╥ T#
╥┼╘╒╥╬ N$
┼╬─╞╒╬├ NAME$
┼╬─╨╥╧├ NAMES
╘HE PROCEDURE SCANS THE PROGRAM
ITSELF, LOOKING FOR PROCEDURES (TOKEN
112) AND FUNCTIONS (TOKENS 227, 228
AND 229). ╧NCE FOUND THERE IS A CHECK
ON THE LINE NUMBER. ╔F IT IS HIGHER
THEN 10000, THEN THE LINE IS NOT
HIDDEN. ╔N THIS CASE THE FUNCTION
╬┴═┼$ IS CALLED, WHICH READS THE NAME
OF THE STRUCTURE FROM THE NAME TABLE.
╘HE SCANNING STOPS WHEN A LINE NUMBER
0 IS ENCOUNTERED. ╘HIS NUMBER IS USED
AT TO AS THE PROGRAM'S END.
╥╧─'S UNIVERSE WAS CREATED WITH THE
PROCEDURE ╚╔─┼┴╫┴┘ HIDING THE
UNIVERSE DESCRIPTION. ╚IDING OF LINE
NUMBERS WAS SIMPLY DONE BY ADDING
10000 TO ALL LINE NUMBERS IN MEMORY.
┬ECAUSE THE STUDENT'S PROCESSES WERE
DEVELOPED AFTER THE HIDING PROCESS,
ONLY HIS HEADERS ARE SHOWN.
╧N DISK THERE IS A PROGRAM,
─┼═╧/╬┴═┼╙, ILLUSTRATING THE USE OF
THE PROCEDURE ╬┴═┼╙.